Proxmox VE 开启虚拟化嵌套

检测pve上的虚拟机是否支持虚拟化

PVE虚拟出来的系统的cpu,默认未启用 vmx 或 svm,即不支持嵌套虚拟化。

在虚拟机中使用命令来验证,没有输出即不启用,有这高亮显示带 vmx 或 svm 的内容。:

egrep 'vmx|svm' /proc/cpuinfo

检查pve系统是否开启nested

# intel
cat /sys/module/kvm_intel/parameters/nested
# amd
cat /sys/module/kvm_amd/parameters/nested

N是未开启

关闭所有虚拟机

# 列出所有虚拟机
qm list
# 关闭虚拟机
qm stop <vmid>

开启内核支持

# intel
modprobe -r kvm_intel
modprobe kvm_intel nested=1

# amd
modprobe -r kvm_amd
modprobe kvm_amd nested=1

如果报错 Module kvm_... in use 请检查虚拟机是否全部关闭。

再查看是否开启 nested

# intel
cat /sys/module/kvm_intel/parameters/nested
# amd
cat /sys/module/kvm_amd/parameters/nested

配置开启自动启用

# intel
echo "options kvm_intel nested=1" >> /etc/modprobe.d/modprobe.conf

# amd
echo "options kvm_amd nested=1" >> /etc/modprobe.d/modprobe.conf

配置虚拟机启用嵌套虚拟化

通过命令配置

以虚拟机id为 100 为例,查看配置,不支持虚拟化

qm set <vmid> --cpu cputype=host

通过Web页面配置

在虚拟机硬件中,修改 CPU 类型为 host 即可。

验证

登录虚拟机查看

egrep "vmx|svm" /proc/cpuinfo